/**
 * 
 */
package com.revenco.bi.service.impl;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.nutz.json.Json;
import org.nutz.lang.Lang;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.revenco.bi.dao.TnChartDataitemsDao;
import com.revenco.bi.model.TnChartDataitems;
import com.revenco.bi.model.userbean.YFieldsBean;
import com.revenco.bi.model.userbean.YQueryBean;
import com.revenco.bi.service.TnChartDataitemsService;
import com.revenco.bi.util.JsonBinder;

/**
 * @author LingJun
 * @version $Revision:1.0.0, 2014年1月27日 上午10:35:50
 */
@Service
public class TnChartDataitemsServiceImpl implements TnChartDataitemsService {
	@Autowired
	TnChartDataitemsDao tnChartDataitemsDao;
	JsonBinder binder = new JsonBinder();
	// y轴数据
	YQueryBean yField;
	YFieldsBean yBean;
	TnChartDataitems tDataitems;

	public void save(String yFields, String chartType, String chartId, String strJson) {
		// y轴数据
		yField = binder.fromJson(yFields, YQueryBean.class);
		int yNum = yField.getFullSelect().length;
		for (int i = 0; i < yNum; i++) {
			tDataitems = new TnChartDataitems();
			yBean = yField.getFullSelect()[i];
			tDataitems.setDataitemsId(new Date().getTime());
			tDataitems.setChartId(chartId);
			tDataitems.setSeriesId(yBean.getName());
			tDataitems.setSeriesName(yBean.getSeriesName());
			tDataitems.setSeriesType(chartType);
			tDataitems.setDataUnit(yBean.getDataUnit());
			tDataitems.setyFieldCd(yBean.getName());
			tDataitems.setyFieldName(yBean.getSeriesName());
			tDataitems.setyFieldTableName(yBean.getTableName());
			tDataitems.setyValueOpType(yBean.getFun());
			tDataitems.setExt1(yBean.getCustomStle());
			tDataitems.setExt2(yBean.getDecimalPrecision());
			tDataitems.setColumnId(yBean.getId());
			// tDataitems.setOrderNum(orderNum);// 多图例情况时配置应有顺序
			this.tnChartDataitemsDao.saveChartDataitemsInfo(tDataitems);
		}
	}

	public void update(String yFields, String chartType, String chartId, String strJson) {
		// y轴数据
		YQueryBean yField = binder.fromJson(yFields, YQueryBean.class);
		int yNum = yField.getFullSelect().length;
		this.deleteTnChartDataitemsInfoById(chartId);
		for (int i = 0; i < yNum; i++) {
			yBean = yField.getFullSelect()[i];
			tDataitems = new TnChartDataitems();
			tDataitems.setDataitemsId(new Date().getTime());
			tDataitems.setChartId(chartId);
			tDataitems.setSeriesId(yBean.getName());
			tDataitems.setSeriesName(yBean.getSeriesName());
			tDataitems.setSeriesType(chartType);
			tDataitems.setDataUnit(yBean.getDataUnit());
			tDataitems.setyFieldCd(yBean.getName());
			tDataitems.setyFieldName(yBean.getSeriesName());
			tDataitems.setyFieldTableName(yBean.getTableName());
			tDataitems.setyValueOpType(yBean.getFun());
			tDataitems.setExt1(yBean.getCustomStle());
			tDataitems.setExt2(yBean.getDecimalPrecision());
			// tDataitems.setOrderNum(orderNum);// 多图例情况时配置应有顺序
			this.tnChartDataitemsDao.saveChartDataitemsInfo(tDataitems);
		}
	}

	public List<TnChartDataitems> getTnChartDataitemsInfoById(String Id) {
		// TODO Auto-generated method stub
		return null;
	}

	public boolean deleteTnChartDataitemsInfoById(String chartId) {
		// TODO Auto-generated method stub
		return tnChartDataitemsDao.deleteChartDataitemsByIdName(chartId);
	}
	public TnChartDataitems getChartDataitemsByIdName(String chartId,
			String name) {
		TnChartDataitems tnDataitems = tnChartDataitemsDao
				.getChartDataitemsByIdName(chartId, name);
		return tnDataitems;
	}
	
	public void deleteByChartId(String chartId) {
		this.tnChartDataitemsDao.deleteByChartId(chartId);
	}
}
